//对于给定的正整数采取逐个累加或者高斯法
//分别计算其执行时间，判断算法优劣
#include <stdio.h>
#include <time.h>
#include <math.h>
long add1 (long n)
{
    long i, sum = 0;
    for (i = 0 ; i < n ; i++)
        sum+=i;
    return sum;
}
void AddTime1(int n)
{
    clock_t t;
    long sum;
    t = clock();
    sum = add1(n);
    t = clock() - t;
    printf (" 方法 1:\n");
    printf ("  结果： 1 ~ % d之和: %ld\n", n, sum);
    printf ("  用时： % lf 秒\n",((float)t)/CLOCKS_PER_SEC);
}
long add2(long n)
{
    return n * (n+1)/2;
}
void AddTime2(int n)
{
    clock_t t;
    long sum;
    t = clock();
    sum = add2(n);
    t = clock() - t;
    printf("方法2:\n");
    printf("  结果: 1 ~ %d之和: %ld\n",n,sum);
    printf("  用时: % lf 秒\n",((float)t)/CLOCKS_PER_SEC);
}
int main()
{
    int n;
    printf("n(大于1000000):");
    scanf(" %d",&n);
    if(n<1000000) return 0;
    AddTime1(n);
    AddTime2(n);
    return 1;
}